0

単純な質問ですが、答えが見つからないようです。たとえば、バッテリー電圧を表示しようとしている場合、小数点以下の数桁の違いが非常に重要になる可能性があります。私がこれを持っている場合:

stringFromNumber(voltage) + 'V'

電圧が12.4の場合、12Vを出力します。これはダメです。これは、結果の StyleKit を編集することで簡単に修正できますが、変更を加えるたびに修正する必要があり、これは非常に面倒です。誰にも解決策がありますか?

C# の出力で作業していますが、問題は C# と Objective-C の両方に存在します。

関連コード:

PaintCode には、以下stringFromNumber(voltage) + 'V' を生成する Voltage String 式があります。

private void DrawGuage(float voltage) {  
    ...  
    var voltageString = new NSString(Math.Round(voltage).ToString()) + "V";
    ...

PaintCode に同じものを生成させたいのですが、Math.round.

4

2 に答える 2

0

上記の PaintCode の回答は 100% ではありません。値が x.5 の場合、x+1 に丸められてから 0.5 が付加されます。したがって、0.5 の代わりに 1.5 を取得するか、10.7 の代わりに 11.7 を取得します。したがって、10 進数の 1 を引く必要があるのは 0.5 以上です。

そこで、いくつかの数学関数と PaintCode で遊んでみました。そして、数値が .5 以上の場合はブール値を使用する式を使用しています。その場合、ドミネーターの数値を 1 減算します。これは、PaintCode で式の値として使用した関数です。

(round(number * 100 % 100) < 50)?(stringFromNumber(round(number)) + "." + stringFromNumber(round(number * 100 % 100))):(stringFromNumber(round(number)-1) + "." + stringFromNumber(round(number * 100 % 100)))
于 2016-01-05T12:28:50.770 に答える