[解決済み] JavaScriptでBigDecimal
2022-03-10 05:28:29
質問
私はJavaScriptの初心者で(Java出身)、少額のお金で金融計算をしようと思っています。
私が最初に行ったのは
<script type="text/javascript">
var normBase = ("[price]").replace("$", "");
var salesBase = ("[saleprice]").replace("$", "");
var base;
if (salesBase != 0) {
base = salesBase;
} else {
base = normBase;
}
var per5 = (base - (base * 0.05));
var per7 = (base - (base * 0.07));
var per10 = (base - (base * 0.10));
var per15 = (base - (base * 0.15));
document.write
(
'5% Off: $' + (Math.ceil(per5 * 100) / 100).toFixed(2) + '<br/>' +
'7% Off: $' + (Math.ceil(per7 * 100) / 100).toFixed(2) + '<br/>' +
'10% Off: $' + (Math.ceil(per10 * 100) / 100).toFixed(2) + '<br/>' +
'15% Off: $' + (Math.ceil(per15 * 100) / 100).toFixed(2) + '<br/>'
);
</script>
これは、常に切り上げられることを除けば、うまくいきました (
Math.ceil
).
Math.floor
も同じ問題があり
Math.round
もフロートには使えない。
Javaでは、最初からfloatの使用を完全に避けていたのですが、JavaScriptでは、それに匹敵するものがデフォルトで含まれていないようです。
問題は、紹介されたライブラリはすべて壊れているか、別の目的のものであるということです。その
jsfromhell.com/classes/bignumber
ライブラリは私が必要とするものに非常に近いのですが、丸めや精度に関して奇妙な問題を抱えています...。Round Typeを何に設定しても、勝手に決定されてしまうようです。例えば、3.7107で精度が2、Round Typeが
ROUND_HALF_UP
3.71のはずが、なぜか3.72になってしまう。
JasonSmithのBigDecimalライブラリ(JavaのBigDecimalを機械的に移植)も試しましたが、node.js用のようで、私には実行するオプションがありません。
どうすればバニラJavaScriptを使ってこれを達成できるのか(そして信頼できるのか)、あるいはメンテナンスされていて壊れていない、私が使える最新の(上記のものはすべてもう何年も前の)ライブラリはあるのでしょうか?
どのように解決するのですか?
を使うのが好きです。
accounting.js
は、数字、お金、通貨の書式設定に使用します。
関連
-
[解決済み】エラー:リスン EACCES 0.0.0.0:80 OSx Node.js
-
[解決済み】Vueのテンプレートまたはレンダー関数が定義されていない 私はどちらも使っていないのですが?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでメールアドレスを検証するのに最適な方法は何ですか?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】TypeError: 'undefined'はオブジェクトではありません。
-
[解決済み】XMLHttpRequestモジュールが定義されていない/見つからない
-
[解決済み】ある要素が可視DOMに存在するかどうかを確認するにはどうすればいいですか?
-
[解決済み】SyntaxError: ChromeのJavascriptコンソールでUnexpected Identifierが発生する。
-
[解決済み】Javascript - ERR_CONTENT_LENGTH_MISMATCH
-
[解決済み】getElementByIdはnullを返す?[クローズド]
-
[解決済み】FirefoxでGoogle Maps V3をリモートで使用すると「googleが定義されていません」と表示される。
-
[解決済み】Kendo Observable Bindingと併用する場合、Kendo Switch Labelsを変更することは可能ですか?[Kendo-UI]です。
-
[解決済み】HTMLの最初の行に予期しないトークン<がある。
-
[解決済み】Javascript、[オブジェクトHTMLInputElement]を表示中。]