ハンドラー関数で e.parameter.oneTextBox によって返される値は文字列です。例では「$120.00」である必要があり、必要なのは数値です...replace()
すべてを削除するために a を使用することをお勧めします数字以外の文字を次のような数字に変換します。
var oneTextBoxNumValue = Number(e.parameter.oneTextBox.replace(/[^0-9]/g,''));// the regex ^0-9 takes everything not between 0 and 9 (and replace by '')
他の textBoxes で同じプロセスを使用すると、この変換後に数学演算で必要なことをすべて行うことができます。
結果を $ で取得するには、結果に「$」を追加するだけです
getElementById('oneTextBox').setText(resultNumeric+"$")
唯一のトリッキーな点は小数点です。変換でこれを考慮する必要があります。$120.00,
数値では 12000 になるため、結果をどこかで除算することを忘れないでください。そうしないと、非常に高価になります。;-) また、丸めエラーが時々発生しましたが、非常に簡単に処理することが常に可能です。たとえば、同様のケースで、正しい結果を得るためにこのようなものを使用する必要がありました:以下の例では、整数を 100 で割り、小数点以下 2 桁の値を取得していることに注意してください)
var total = parseInt(Number(quant)*valtotal*100+0.01)/100;
最初にいくつかのアイデアが得られることを願っています。
編集:ここに説明するための小さなコードがあります:
function calcTest() {
var app = UiApp.createApplication().setTitle('TextField Calculator');
var button = app.createButton('Calculate');
var handler = app.createServerHandler('calc');
button.addClickHandler(handler);
var grid = app.createGrid(5, 2);
grid.setText(0, 0, 'value1 ');
grid.setWidget(0, 1, app.createTextBox().setName('value1').setText('$ 45.00/unit'));
grid.setText(1, 0, 'value2');
grid.setWidget(1, 1, app.createTextBox().setName('value2').setText('3 units'));
grid.setText(2, 0, 'press button to calculate');
grid.setWidget(2, 1, button);
grid.setText(3, 0, 'value3 = value1*1.35');
grid.setWidget(3, 1, app.createTextBox().setId('value3').setEnabled(false));
grid.setText(4, 0,'sum value1 + value2 + value3');
grid.setWidget(4, 1, app.createTextBox().setId('sum').setEnabled(false));
handler.addCallbackElement(grid);
app.add(grid);
var ss = SpreadsheetApp.getActive();
ss.show(app);
}
function calc(e){
var app = UiApp.getActiveApplication();
var value1 = Number(e.parameter.value1.replace(/[^0-9]/g,''))/100;
var value2 = Number(e.parameter.value2.replace(/[^0-9]/g,''));
var calcvalue = parseInt(value1*1.35*100)/100
var sumcalc = calcvalue+value1+value2
app.getElementById('value3').setText('$ '+calcvalue)
app.getElementById('sum').setText(sumcalc+' without unit;)')
return app
}

EDIT 2:これは別のコードです。これは、アプリケーションで文字列値をユーロに変換するために使用する関数です。アプローチはわずかに異なりますが、かなりうまく機能します。
function toEuro(val){
if(val==''){temp='';return temp}
var temp = val.toString().replace(/[^\d\.-]/g,'').split('.');
if(temp[0]==''){temp[0]='0'}
if(temp.length==1){var result = temp[0]+',00 €'}
else{
var int = temp[0]
var dec = temp[1]
if(dec.length==1){var result=int+','+dec+'0 €'}else{var result=int+','+dec+' €'}
}
return result
}