フォームに数値入力フィールドがあります。そして私は、私はそれがあまりにも大きい持っており、それを許可していません検出し99999999999999999
の値を提出しようとした場合99999999999999
最大入力で小数点以下2桁までの数字入力の検証は機能しません
する2
と最大値に小数点以下の桁数の最大値を設定しました。 99.123
を提出しようとすると、小数点以下の桁数が多すぎるため、許可されません。
しかし、99999999999996.123
を提出しようとすると、小数点以下の桁数が多すぎることは検出されません。
どうすればこの問題を解決できますか?
var app = angular.module('Appp', []);
app.controller('metadataCtrl', function ($scope, $http) {
$scope.vm = { myItems : {} }
$scope.item = {type: "a", value: 99999999999998};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<form ng-app="Appp" name="myForm" ng-controller="metadataCtrl">
<input type="number"
step="0.01"
max="99999999999999"
min="0"
step-message="{name} can only have a maximum of 2 decimal places"
ng-model="item.value"/>
<input type="submit" value="Submit">
</form>
ジャスト 'はconsole.log(99999999999996.123を)'実行し、あなたはその理由を理解します。数字はちょうど64ビットです。実数の無限を64ビットで保存することはできません。最大の数字は、最も正確でない数字になります。 –