1

さて、私はラジオ番組に取り組んでいます。現在、ラジオ周波数は次のような整数です。107900、87900。

そのような数値を次のような文字列に変換する必要があります。

107.9、87.9

私は DecimalFormat で遊んでいますが、成功していません。ヒントやヒントをいただければ幸いです。

ここに私が試したいくつかのことがあります、

frequency = 107900;
double newFreq = frequency / 1000;
String name = String.valueOf(newFreq);
result = 107.0

double freqer = 107900/1000;
DecimalFormat dec = new DecimalFormat("#.0");
result = 107.0

int frequency = 107900;
DecimalFormat dec = new DecimalFormat("#.0");
result = 107900.0

ありがとう!

4

1 に答える 1

3

浮動小数点数を台無しにしないように、また、小数点以下がすべて 1 桁であると仮定すると (ラジオ局はここにあるため)、次のように使用できます。

String.format ("%d.%d", freq / 1000, (freq / 100) % 10)

たとえば、次の完全なプログラムを参照してください。

public class Test {
    static String radStat (int freq) {
        return String.format ("%d.%d", freq / 1000, (freq / 100) % 10);
    }

    public static void main(String args[]) {
        System.out.println("107900 -> " + radStat (107900));
        System.out.println(" 87900 -> " + radStat ( 87900));
        System.out.println("101700 -> " + radStat (101700));
    }                          
}

出力:

107900 -> 107.9
 87900 -> 87.9
101700 -> 101.7
于 2013-03-20T01:52:13.387 に答える