• ベストアンサー

数値の算出について。

root139の回答

  • root139
  • ベストアンサー率60% (488/809)
回答No.3

アドバイスとしては、まず、 a. どの様なコードを実行して b. どの様な状態になったのか c. エラーが出たなら、どの様なエラーや例外だったのか、どの様なメッセージが出たのか を明確にする事でしょう、

ITJack
質問者

お礼

検証の結果とが分かりましたのでご報告させていただきます。 まず下記のようなソースを作成し マイナスの数値も加えると 値が370135800になり算出できます。 import java.text.DecimalFormat; import java.text.NumberFormat; public class 金額算出 { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ int lot1 = Integer.valueOf(123456789).intValue(); int lot2 = Integer.valueOf(123456789).intValue(); int lot3 = Integer.valueOf(123456789).intValue(); int lot4 = Integer.valueOf(-234567).intValue(); int plus = lot1 + lot2 + lot3 + lot4; NumberFormat nf1plus = new DecimalFormat("#0"); String totalvalue = nf1plus.format(plus); System.out.println( totalvalue); } } 因みに System.out.println((Long.parseLong(123456789) + Long.parseLong( -234567)));な 感じでも算出可能でした。 今回の値はテキスト入出力の値になりますが テキストの中身が分かりやすいように カッコ内に数値を表示してますが 頭に0が付く9ケタの数値でも値が算出できます。 int lot1 = Integer.valueOf(000002590).intValue(); int lot2 = Integer.valueOf(000002590).intValue(); int lot3 = Integer.valueOf(000002590).intValue(); int plus = lot1 + lot2 + lot3 NumberFormat nf1plus = new DecimalFormat("#0"); String totalvalue = nf1plus.format(plus); System.out.println( totalvalue); } 因みに nt lot1 = Integer.valueOf(000002590).intValue(); int lot2 = Integer.valueOf(000002590).intValue(); int lot3 = Integer.valueOf(-2590).intValue(); int plus = lot1 + lot2 + lot3 NumberFormat nf1plus = new DecimalFormat("#0"); String totalvalue = nf1plus.format(plus); System.out.println( totalvalue); } このようなマイナス内を入れて検証しても問題ありませんでした。 ですが ほんとのマイナス数値は 数値の前にスペースがあるのです。 000002590 000002590 -2590(この場合-も含めて5桁ありますから数値の前にスペースが4桁あります)のような感じです。 スペースがなければ算出できるのですが 原因はテキストデータの中に含まれるマイナス数値の 前にあるスペースと思われます。 ここまでは分かりましたが、 この文字列で算出できればと思っております。

ITJack
質問者

補足

ありがとうございます。 自宅に戻ってから、検証して 改めてご報告させて頂きます。

関連するQ&A

  • 数値の抽出方法がわからず困っています

    テキストデータの処理がうまくいかず困っています。 ----------------------------------------------- a:0.001 b:-11.111 c:50.5 d:-12.345 ----------------------------------------------- といった文字列から ----------------------------------------------- 0.001 -11.111 50.5 -12.345 ----------------------------------------------- といった形で符号や小数点を含めて抽出したいのですが どのようにするのが良いのでしょうか。 各値は、それぞれの値がスペースによって区切られています。 また、各値は数値の大きさがそれぞれ異なり桁数が一定ではありません。 split や substr を用いてやろうとしているのですが、 なかなか思ったとおりの形で出力できません…

  • TransferSpreadsheetでの数値丸め

    前回の質問と関連がありますのでご参考下さい TransferSpreadsheetでの指数表記 https://okwave.jp/qa/q10095442.html Access上のVBAにてTransferSpreadsheetを利用して Excelを読み込みテーブルに表示させているのですが、 以下書式条件だと何故か数値が丸められ正しくない値が読み込まれます。 例1 1行目(ヘッダ)文字列 2行目 数値(書式:数値) 3行目 数値(書式:文字列) 結果1 2行目の値が丸められてAccessのテーブルに取り込まれます。 例2 1行目(ヘッダ)文字列 2行目 数値(書式:数値) 3行目 数値(書式:数値) 結果2 この場合はどちらも丸められず、正しい数値が取り込まれます。 Excelの書式で文字列と数値が混在した時限定の挙動の様です。 取り込み元のExcelは編集不可になります。 数値を丸められず正しく読み込む方法はありますか?

  • [Excel]重複しない文字に対応する数値の合計を求めたい

    Excelの関数で困っています。 ---------------- | A | B | C | 1|記号|名前|値 | 2| + |aaa |50 | 3| + |bbb |20 | 4| - |aaa | | 5| + |ccc |90 | 6| + |ddd |40 | 7| - |ddd | | ---------------- | |合計|110| ---------------- 上のような表で(形式は変えられない) 重複を除いた"3C"と"5C"の[値]の合計値のみを算出したいです。 条件としては、 (1)[B]の重複するデータを見つける(2つのはず) (2)(1)の2つのうち、片方の[A]の"+"、もう片方の[A]は"-"であることを確認 (3)"2C"から"7C"の範囲で、(2)を確認した(1)を除いた合計値を算出する といった流れです。 どのような条件式を与えれば良いでしょうか? 調べてもなかなか同じような例がないし、理解が難しいです。 DSUMを使うのかとは思ってますが。 詳しい方がいらっしゃればご教授お願い致します。 ※"記号"・"名前"は文字列で"値"は数値です。 ※"記号"が"-"のものは"値"が空です。

  • EXCELの上位3個の数値の集計

    EXCELの集計方法につきまして、ご教授をお願い致します。 EXCELで複数の数値の中で、上位3個の数値の合計を算出する場合。 通常はA列~K列までに数値が入っている場合 =LARGE(A1:K1,1)+LARGE(A1:K1,2)+LARGE(A1:K1,3) のように算出するのが一般的ですが・・・。 B、D、F、H、J列を集計対象から除きたい場合は、どのようになりますでしょうか? すなわち A、C、E、G、I列のみの上位3個の数値合計を算出したいのです。 すみませんが、よろしくお願いいたします。

  • IF関数を算出した値を合計する

    こんにちは。 IF関数を使用した値を合計することができない為、お力を下さい。 IF関数で=IF(A1<B1,C,D)と組んだ式ででた値を合計したいのですが 上手くできません。 文字列かと思いセルの書式設定を数値にしたのですができませんでした。 エラーメッセージも出ないため、何が問題なのかがわかりません。 わかることがあれば教えてください。 宜しく御願い致します。

  • ある文字列から数値だけを取り出したいのですが

    EXCEL初心者です EXCEL2000で ある文字列から”-(マイナス)”記号以降の 数値だけを取り出したいのですが、よい方法がわかりません、 例) 12.8-20.0→20.0 13.5-15.3→15.3 1.5-5.6→5.6

  • ms access クエリの集計について

    こんにちは ms accessのクエリで、文字列として入力されている数字を数値扱いに直してその合計を出そうとしているのですが、特定の値を指定して合計を出そうとすると値がマイナスになってしまいます。 例 式1:sum(val(nz[フィールド名]))=1) フィールドに1とあるレコードを足して合計を出す場合です。値がマイナスになってしまいます。nzは別のクエリ使用時に空欄があるとまずいので入れてあります。 左隣で別のフィールドでグループ化し、ここでは演算を選択しています。

  • Excelでデータの各値とその個数を生成するには

    Excelでデータの各値とその個数を生成するような機能はないでしょうか? 例えば、Excelの A列に1,2,3,2,5,3,2という数値が入力されていた場合に、 B列に1,2,3,4,5という値と、 C列に各値の個数である1,3,2,0,1という値が 生成されるような機能はありますでしょうか。 できれば、A列のデータから、 添付図のグラフを生成させたいです。 なお、上記の例のA,B,C列は一例で、データの数も7個だけですが、 実際には、数百あり、桁数も1~4桁の値です。 よろしくお願いします。(Windows10,Excel2016)

  • エクセル VBA自動合計算出について

    エクセル VBAで悩んでいます。  内容としては、エクセルデータをアクセスに取り込みたいのですが、表の合計をSUMにて合計した値を取り込んだ場合、文字列になってしまいアクセスで数値の認識されません。よってエクセル VBAを使用し、自動計算させたいと考えています。 具体的にすると画像の赤部分の名称1から名称9までを指定し、縦の数値を合計し、その後 1列空白行を作り、名称10から名称16までを自動計算させるというプログラムにしたいのです。 上記のようなプログラム組めるでしょうか? アドバイスをいただけないでしょうか?

  • C#で数値を抽出したい

    0,2,3,3,5,6, という文字列があったとしまして、これを左の数値からint型配列にひとつひとつ格納したいのですが、どうやればいいかわかりません。 int[0]=0 int[1]=2 ... int[5]=6 どなたか教えてください!