0
var schemeduration = '1.5';// 1 year and 5 months
var schemeduration= (parseFloat(schemeduration) * 12).toFixed(0) ;
alert(schemeduration);

1.1 = 13 months
1.2 = 14 months
1.3 = 15 months
1.4 = 16 months
1.5 = 17 months
1.6 = 18 months
1.7 = 19 months
1.8 = 20 months
1.9 = 21 months
1.10 = 22 months
1.11 = 23 months
1.12 = 24 months

指定された年の正確な月を10進数で表示する方法.上記の場合、17を表示する必要がありますが、値を18として取得しています。年には12か月あり、月単位で計算された出力が必要です

JSFIDDLE

4

4 に答える 4

2

これはうまくいくはずです:

var schemeduration = '1.5';

if(schemeduration.indexOf('.') === -1) schemeduration += '.0';

var years = Math.floor(parseFloat(schemeduration));
var months = parseInt(schemeduration.split('.')[1], 10);

schemeduration = years * 12 + months;

alert(schemeduration);

デモ: http://jsfiddle.net/NsBxX/1/

于 2013-07-15T17:32:03.577 に答える
1

これを行います: jsFiddle の作業

var schemeduration = '1.5';
var arr = schemeduration.split('.');
var ans = (Number(arr[0]) * 12) + Number(arr[1]);

alert(ans);

まず、文字列を小数点を区切り文字とする 2 つの部分に分けます。次に、年の部分に 12 (月) を掛けて、月の部分を追加します。

于 2013-07-15T17:32:19.797 に答える
0

テキスト文字列 '1.10' を単一の浮動小数点数として扱わないでください。そうすると「1.1」との違いが分かりません。それにもかかわらず、最初の 1 年 1 か月は代わりに「1.01」にする必要があります。

現在のシステムを解析するには、入力文字列をピリオドで 2 つに分割します。次に、最初の数値の 12 倍を 2 番目の数値に加算します。

于 2013-07-15T17:32:16.777 に答える
0

「.」で分割する必要があります。年なので、最初の値は *12 になります。これを2番目の値に追加すると、あなたは良いです

var schemeduration = '1.5';
var tokens = schemeduration.split('.');
var years = parseInt(tokens[0]);
var months = parseInt(tokens[1]);

alert(years*12+months); 
于 2013-07-15T17:32:27.793 に答える