並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 29 件 / 29件

新着順 人気順

BigDecimalの検索結果1 - 29 件 / 29件

  • 金勘定のためのBigDecimalそしてMoney and Currency API

    Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)NTT DATA Technology & Innovation

      金勘定のためのBigDecimalそしてMoney and Currency API
    • [Ruby]消費税計算にはBigDecimalを使いましょう - Qiita

      消費税計算でありがちな浮動小数点問題 ちょっと電卓で 1800 x 1.08 を計算してみてください。いくつになりましたか? はい、 1944 ですね。 ではターミナルからirbを開いて、 1800 * 1.08 と打ち込んでください。

        [Ruby]消費税計算にはBigDecimalを使いましょう - Qiita
      • https://always-pg.com/java/j2se_rd/number/setscale.html

        • Javaプログラマーのためのjava.math.BigDecimalまとめ - きどたかのブログ

          以前書いたメモ的なエントリーを読み返してみて、 簡単なエントリーに書きなおそうと思いたった。 java.math.BigDecimalの構造 「精度(precision)」と「スケール(scale)」と「一般的な桁数」の違い 精度とスケールの違いを正しく把握しているかを試すのに、 この質問をしてみるといいでしょう。 質問者「1000の精度(precision)はいくつですか?」 正解者「わかりません。3か2か1です。」 精度(precision)はBigIntegerの桁数(unscaled valueの桁数)と同じです。 see also precision() 文字列から精度を判断することは出来ないことがあり、 スケール(scale)が値によって精度(precision)が変わります。 スケール(scale)は小数点以下の桁数ですが、それは小数点があった場合の話。 スケールが0以上の場

            Javaプログラマーのためのjava.math.BigDecimalまとめ - きどたかのブログ
          • JavaとScalaのBigDecimalについて色々と - xuwei-k's blog

            以下のような経緯で、BigDecimalをいじっていて、知らなかったことがいくつか出てきたので、まとまりが無いですがとりあえずわかったことを順に書いていきます。 前提知識として、BigDecimalはDoubleなどで表しきれない大きな数を表すためのクラスです、そしてscala.math.BigDecimalは、java.math.BigDecimalの薄いラッパーです。単に、BigDecimalといった場合、どちらのこと言ってるのかわかりにくい・・・。 play2scalaz という自作のライブラリで、テストが途中で停止する(?)問題に遭遇 スレッドダンプ取得してみたら、BigDecimalがあやしい Play2のJsonの数字を表すJsNumberは、内部で一旦scalaのBigDecimalとして保持している*1 なので、play2scalazのテストで、BigDecimalからJs

              JavaとScalaのBigDecimalについて色々と - xuwei-k's blog
            • BigDecimal の DoS 脆弱性

              Posted by maki on 10 Jun 2009 Ruby標準ライブラリの一つであるBigDecimalに、DoS(Denial Of Service)状態を引き起こしてしまう脆弱性が存在することが発見されました。 BigDecimalオブジェクトから浮動小数点数(Float)への変換に問題があり、攻撃者はsegmentation faultsを引き起こすことができます。 ActiveRecordライブラリはこのメソッドを使用しているため、多くのRailsアプリケーションはこの脆弱性の影響を受けます。しかしながら、これはRailsのみの問題ではなく、Rubyアプリケーション全体に影響の起こりうる問題です。 影響 攻撃者は巨大なBigDecimalの数値を変換することにより、DoS状態を引き起こすことができます。 その一例を以下に示します。 脆弱性の存在するバージョン 1.8系 1

              • なぜBigDecimalを使わなければならないのか | Java好き

                floatやdoubleで勘定系の計算をするプログラムを組んでいると正しい計算をしてくれなくてバグになることがある。このときコンピュータが単純な計算ミスをしているわけではない。計算結果が我々の意図通りになっていないだけ。ただ意図しない結果はバグと判断される。

                • BigDecimalの使い方 | Java好き

                  floatやdoubleでは正確な計算(精度を指定した計算)ができない。そもそも正確な計算用ではない。なぜdouble/floatではなくBigDecimalを使うのかの理由についてははこちらをご覧下さい。

                  • Ruby Kaigi 2010 Day 3

                    It's Matz and... Someone else (sorry if it's obvious - I don't know). And of course they are programing in the bath. BigDecimal: You can handle numbers as large as can fit into memory as opposed to the IEEE double #rubykaigiBigMath is the Math module for BigDecimal #rubykaigiLots of different rounding modes in BigDecimal #rubykaigiBigDecimal.mode is global per process - not thread safe #rubykaigiS

                      Ruby Kaigi 2010 Day 3
                    • プログラムにおける数の扱い方の常識

                      デシマルで加減乗除してみる [java.math.BigDecimal] 続いて、先ほど紹介したjava.math.BigDecimalクラスについて、四則演算のための典型的なメソッドを中心に、主要なメソッドを解説していきます。 java.math.BigDecimal#add(加算) 足し算を行いたい場合には addメソッドを利用します。(3)の個所のように、BigDecimalクラスのインスタンスを2つ利用して加算を実現します。加算した後の値がメソッドの返り値として戻されます。 下記のソースコードを実行してみましょう。 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.math.BigDecimal; import javax.swing.JFrame; import j

                        プログラムにおける数の扱い方の常識
                      • 四捨五入・切上げ・切捨てをする - Javaちょこっとリファレンス

                        数値を指定した桁数で四捨五入したり、切り上げ、切り捨てをしたい場合は、 java.math.BigDecimalクラスを使用します。 サンプルソースコード 四捨五入、切り捨て、切り上げサンプル import java.math.BigDecimal; public class RoundSample { public static void main(String args[]) { //元データ double val = 42.195; //元データをBigDecimal型にする BigDecimal bd = new BigDecimal(val); //四捨五入する BigDecimal bd1 = bd.setScale(0, BigDecimal.ROUND_HALF_UP); //小数第1位 BigDecimal bd2 = bd.setScale(1, BigDecimal.

                        • BigDecimalの仕組みを利用してみた。 - いろいろ解析日記

                          BigDecimalを利用するコードを書いてみました。 この記事でやっていることは、BigDecimalの仕組みを図解してみた。で図解した内容に基づいています。 目次 基本的な構造 スケールを変える 足し算 引き算 掛け算 割り算 基本的な構造 基本的な構造を表示するためのメソッドを作りました。 表示形式は「実際の値 = 整数部 * 10 ^ ( - スケール )」です。 // BigDecimalについて詳しく表示する。 public static void printBigDecimal( String msg, BigDecimal val ) { // 整数部を取得する。 BigInteger intValue = val.unscaledValue(); // スケール int scale = val.scale(); // 「実際の値 = 整数部 * 10 ^ ( - スケール

                            BigDecimalの仕組みを利用してみた。 - いろいろ解析日記
                          • Java BigDecimalで足し算, 引き算, 掛け算, 割り算そして四捨五入する方法 | ホームページ制作のサカエン Developer's Blog

                            Java BigDecimalで足し算, 引き算, 掛け算, 割り算そして四捨五入する方法です。 Java を使って浮動小数を計算する場合、BigDecimal クラスを利用しましょう。 float 型 や double 型では、誤差が出る可能性があります! 実務の中で厳密なお金の計算をする場合、特に外貨などを扱う必要が場合は、BigDecimal クラスは必須です。 普通の計算の仕方と違うので、慣れるまで難しいと思うかもしれません。でも厳密な計算をするためには必要ですので、がんばりましょう。 ここでは Java BigDecimalで足し算, 引き算, 掛け算, 割り算そして四捨五入する方法 を紹介します。

                              Java BigDecimalで足し算, 引き算, 掛け算, 割り算そして四捨五入する方法 | ホームページ制作のサカエン Developer's Blog
                            • intとBigDecimalの型変換|Javaキャスト入門

                              Javaプログラム開発の入門・基礎・応用、初心者から中級者までJavaプログラミングの総合サポートサイト ガイドメニュー お問い合わせ サイトマップ テーマ別メニュー 数値を扱うint型と、任意精度の符号付き10進数を扱うBigDecimal型のキャストについて説明しています。 TOP 「Javaプログラミング講座」のトップページを表示します。当サイトは、初心者から中級者までJavaプログラミングの総合サポートサイトです。 Java入門編 開発環境の設定やJavaの基本文など、初めてJavaプログラム開発する人を対象に、入門的なことをまとめています。 メソッド入門 Javaプログラミング初心者向けに、メソッドの利用方法をまとめています。当サイトでは、関数とメソッドは同じものとして扱います。 複数クラス入門 Javaプログラムで複数のクラスを利用する方法を詳しく説明しています。クラス間での値

                              • Ruby のコミッタになりました - ドレッシングのような

                                主な仕事は bigdecimal のメンテナンスです。それに関連して、yugui さんたちと共謀して ruby の数体系を今より扱い易いものにしていきたい。 絵文字エンコーディングも早くマージしたいですね。

                                  Ruby のコミッタになりました - ドレッシングのような
                                • round BigDecimal

                                  小数点以下を四捨五入する(BigDecimal) 事務処理計算で小数点を扱う場合、浮動小数点である基本型より、BigDecimal classが適しています。 BigDecimalの小数点以下の丸めを行うには、割り算で丸めを行うか、setScale methodで丸めるかの2つがあります。 ここでは特にrounding mode(丸めモード)に注目しています。 import java.math.*; public class ExamRoundBigDecimal { public static void main(String[] args) { BigDecimal bd1 = new BigDecimal("110"); BigDecimal bd2 = new BigDecimal("0.05"); BigDecimal bd3 = bd1.multiply(bd2); Sy

                                  • floatをもとにBigDecimalオブジェクトを作成する。 - 未来を愛すべきこと-Javaやったり技術書読んだり

                                    doubleからBigDecimalオブジェクトを作成する場合、 BigDecimal bd = new BigDecimal(doubleVal); としてしまうと、浮動小数点で正確に表せない数値の場合、期待結果とズレる場合があります。 Javadocの BigDecimal(double) コンストラクタから引用↓ Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle # 一方、String コンストラクタは完全に予測可能である。new BigDecimal("0.1") と記述すると、「正確に」 0.1 と等しい BigDecimal が作成される。そのため、通常は、これの代わりに String コンストラクタを使用することが推奨されている # BigDecimal のソー

                                      floatをもとにBigDecimalオブジェクトを作成する。 - 未来を愛すべきこと-Javaやったり技術書読んだり
                                    • Riding Rails: DoS Vulnerability in Ruby

                                      Posted by michael June 10, 2009 @ 12:01 AMA Denial of Service vulnerability has been found and fixed in ruby. The vulnerability is due to the BigDecimal method mishandling certain large input values and can cause the interpreter to crash. This could be used by an attacker to crash any ruby program which creates BigDecimal objects based on user input, including almost every Rails application. This

                                      • JavaでBigDecimal同士の比較 | Java | 株式会社CONFRAGE

                                        BigDecimalオブジェクト同士の大小比較にはcompareToメソッドを使用します。 この時compareToメソッドの戻り値はAPIには、 BigDecimalの値が比較するBigDecimaより小さい場合は-1、等しい場合は0、大きい場合は1 とあります。 ですので、以下のように戻り値を-1や1と比較しがちです。 if(a.compareTo(b) == -1){ // 処理 } このように比較すると全ての比較演算子が使用できません。ですのでcompareToメソッドの戻り値は必ず0と比較します。 0と比較することにより比較演算子(<、==、>、>=、!=、<=)の全てが使用できるようになります。 以下は、例です。 import java.math.BigDecimal; public class BigDecimalTest { public static void main(

                                        • Rubyによる 小数 と Float と BigDecimalについて...(初心者向け) - Qiita

                                          はじめに これまで、リアルなお金を扱うシステムを作ったこともなかったし、小数を含む演算を実装することがこれまでなかったので小数演算の経験がほとんどありませんでした。(ほんと整数だけで大抵のことは大丈夫!!!) Float を使うと まるめ誤差 が生じて四捨五入や繰り上げ、繰り下げを利用するときに誤差が影響する場合があるということは話に聞いていたので、実際にどういう影響があるのか、対応する方法などについてRubyを使って調べてみました。 そもそも小数とは まずは小数についてをざっくり調べて見ると、、 浮動小数点数 - Wikipedia とか 固定小数点数 - Wikipedia とか色々出てくる。。これらをざっくり読むだけではうーんという感じなのでとりあえず表記方法だけみていこうと思います。 小数の表記方法 小数といえば、例えば 1.23 これです!! 小数点の表記方法としては他には以下の

                                            Rubyによる 小数 と Float と BigDecimalについて...(初心者向け) - Qiita
                                          • Kenta Murata

                                            Kenta Murata Software Enginner CRuby Committer Identifications mrkn AT mrkn.jp mrkn's diary (My Japanese Blog) ドレッシングな日々 (My Old Japanese Blog) Anything (My English Blog) @KentaMurata mrkn mrkn720 mrkn22 mrkn Skills Program languages Ruby C C++ Python Julia Swift Objective-C JavaScript CoffeeScript Assembly languages Bourne Shell script GNU R Vim script Emacs Lisp Frameworks, Middlewares, and Libr

                                            • Javaでの数値計算の誤差や限界値 - kmkのメモ帳

                                              int型の計算誤差 int型同士の[掛け算、足し算、引き算]で誤差が発生するのはint型の最大値を超えてしまった場合か、最小値を下回ってしまった場合のみです。尚、当たり前ですが少数点を含む数値はだめです。整数に限ります。 int型の最大値 = 2147483647 int型の最小値 = -2147483648 この値を超えないよう注意さえすればint型では掛け算、足し算は誤差なく実施できます。 ただし、int型は小数点を切り捨てるため、割り算では大抵誤差が発生します。 例:1/2 = 0.5 0.5はint型では0として扱われるため 1/2 = 0 となってしまう。 double型の誤差について double型では値を格納する際に誤差が発生する可能性があります。 そのため、どのような計算でも誤差が発生する可能性があります。 尚、double型が扱える範囲は 最大値 1.79...E+308

                                              • java.math.BigDecimalの最大桁数(理論値) - きどたかのブログ

                                                面倒臭いことを調べることになったJavaプログラマーに捧ぐ すこし時間を割いて最大桁数を計算してみることにしました。 結論からいうと 2793926648桁くらいだと思う。 精度の限界は646443000桁くらいです。 無量大数が128桁です、と補足しておこう。 動かすことが出来るかは保証できない。 3GB与えても私はprecision()の結果を得られなかった。 では机上検証してみようか。 この式を用いますが、これだけでは足りませんね。 BigIntegerの内容が必要です。 BigIntegerのいまの実装を見ると、数字はint配列で持っているようです。 BigIntegerは2の補数表現で数字をもっているそうです。 2の補数というのは先頭ビットが1なら負で、0なら正です。 intは4バイトの符号付き整数です。 また、Integer.SIZEにあるように、 2の補数のバイナリ形式に使用

                                                  java.math.BigDecimalの最大桁数(理論値) - きどたかのブログ
                                                • bignumber.js API

                                                  v9.0.2 API CONSTRUCTOR BigNumber Methods clone configset DECIMAL_PLACES ROUNDING_MODE EXPONENTIAL_AT RANGE CRYPTO MODULO_MODE POW_PRECISION FORMAT ALPHABET isBigNumber maximummax minimummin random sum Properties ROUND_UP ROUND_DOWN ROUND_CEIL ROUND_FLOOR ROUND_HALF_UP ROUND_HALF_DOWN ROUND_HALF_EVEN ROUND_HALF_CEIL ROUND_HALF_FLOOR DEBUG INSTANCE Methods absoluteValue abs comparedTo decimalPlaces

                                                  • 浮動小数点数(float, double)演算の丸め誤差と対策(Javaの例) | つかびーの技術日記

                                                    最近浮動小数点数演算に起因する調査を行う機会があったので、復習しました。 浮動小数点数(Javaで言うとfloatとかdouble)を使って演算するときは丸め誤差によって意図した値にならないことがあります。これが発生するケースや対策について書いてみました。 しっかり書こうと思ったけど、当然ながらこれについて書いている記事は他にも色々あるし、自分自身他のblogで書いたことがあったので、結構省略していきます。 ちなみに以下のサイトとか分かりやすくて良いですよ。 [Java] 小数点の計算をやるからといってすぐにfloatやdoubleを使ってはいけない 現象 package com.tsukaby.calc; public class App { public static void main(String[] args) { System.out.println(0.7 + 0.2 + 0

                                                    • StringとBigDecimalの型変換|Javaキャスト入門

                                                      Javaプログラム開発の入門・基礎・応用、初心者から中級者までJavaプログラミングの総合サポートサイト ガイドメニュー お問い合わせ サイトマップ テーマ別メニュー 文字列を扱うString型と、任意精度の符号付き10進数を扱うBigDecimal型のキャストについて説明しています。 TOP 「Javaプログラミング講座」のトップページを表示します。当サイトは、初心者から中級者までJavaプログラミングの総合サポートサイトです。 Java入門編 開発環境の設定やJavaの基本文など、初めてJavaプログラム開発する人を対象に、入門的なことをまとめています。 メソッド入門 Javaプログラミング初心者向けに、メソッドの利用方法をまとめています。当サイトでは、関数とメソッドは同じものとして扱います。 複数クラス入門 Javaプログラムで複数のクラスを利用する方法を詳しく説明しています。クラス

                                                      • freee の API では BigDecimal をどう扱うべきなのか? - freee Developers Hub

                                                        この記事は freee Developers Advent Calendar 2021 の最終日の記事です🎄 普段は freee会計 や freee人事労務 といった、freee におけるコアサービスの開発の面倒を見る、プロダクトコア開発本部の本部長をしています id:yo_waka です。 前回書いたときは Webpack でビルドしていましたが、昨日も Webpack でビルドしていました。 今回何を書こうかなーと悩んでいたのですが、最近 BigDecimal の扱いについて社内で議論する機会があったので共有してみます。 あらまし Rubyのバージョンアップをするぞ 依存ライブラリを新しいRubyバージョンに対応したものに上げていくぞ jbuilder 並びに JSON gem のバージョンを上げていくぞ <= 今日はここの話題です freee では、Rails で API レスポン

                                                          freee の API では BigDecimal をどう扱うべきなのか? - freee Developers Hub
                                                        • BigDecimal 基本編 : Java好き

                                                          小数がからむ計算の場合、 floatやdoubleを使うとその性質上必ず誤差が出る。 よって、お金の計算などの正確さが必要な場合は BigDecimalは必須。 クラス図は次のようになる。 本体のBigDecimal以外も「MathContext」「RoundingMode」を利用する。 生成 BigDecimalは「16種類のコンストラクタ」or「3つのvalueOf()」で生成できる。 どれを使用するかは、次の順に検討する。 文字列を使ったコンストラクタ new BigDecimal(String val) long値を受け取るvalueOf valueOf(long val) long値とそのスケールを受け取るvalueOf valueOf(long unscaledVal, int scale) double値とMatchContextを受け取るコンストラクタ BigDecimal

                                                            BigDecimal 基本編 : Java好き
                                                          • GitHub - jtobey/javascript-bignum: Scheme arithmetic library for JavaScript

                                                            Scheme arithmetic library for JavaScript, https://github.com/jtobey/javascript-bignum. Copyright (c) 2010, 2011, 2012 John Tobey jtobey@john-edwin-tobey.org Copyright (c) 2009 Matthew Crumley email@matthewcrumley.com Licensed under the MIT license, file LICENSE. Big integer implementation based on javascript-biginteger, https://github.com/silentmatt/javascript-biginteger. #What is it? The Scheme l

                                                              GitHub - jtobey/javascript-bignum: Scheme arithmetic library for JavaScript
                                                            1