Lorsque j'étais sur filemaker j'utilisais ce code pour calculer. Il vient de Marco Terrile.
Pensez-vous qu'il pourrait être transférable.
/* I use this function in recipes to convert the value of 'number' 'from' a unit measure 'to' another . The function works with weight and capacity measure units: g. hg. kg. oz. fl.oz. gal. l. ml. cl. dl. cup. tsp. tbsp. lb and pint are recognized almost in any combination.
Marco Terrile 2005 */
Let ( [
in = Lower(Filter( Trim (from); 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'));
out = Lower(Filter( Trim (to); 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'));
eq= in & out
];
If(in = out; number;
If( Left( eq;1) = 'l';
Case(
eq = 'lbg' ; number * 453,592427;
eq = 'lbhg' ; number * 4,53592427;
eq = 'lbkg' ; number * ,453592427;
eq = 'lboz' ; number * 16;
eq = 'lbtsp' ; number * 96;
eq = 'lbtbsp' ; number * 32;
eq = 'lfloz' ; number * 33,814022201611;
eq = 'ldl' ; number * 10;
eq = 'lcl' ; number * 100;
eq = 'lml' ; number * 1000;
eq = 'ltsp' ; number * 202,884119489;
eq = 'ltbsp' ; number * 67,628067271;
eq = 'lcup' ; number * 4,2267534898;
eq = 'lpint' ; number * 2,114164904863;
eq = 'lgal' ; number * ,264172037284
)
;
Case(
eq = 'tbspg' ; number * 14,175;
eq = 'tbsphg' ; number * ,15;
eq = 'tbspkg' ; number * ,015;
eq = 'tbspoz' ; number * ,5;
eq = 'tbsplb' ; number * ,03125;
eq = 'tbsptsp' ; number * 3;
eq = 'tspg' ; number * 4,725;
eq = 'tsphg' ; number * ,04725;
eq = 'tspkg' ; number * ,004725;
eq = 'tspoz' ; number * ,166666666667;
eq = 'tsplb' ; number * ,010416666667;
eq = 'tsptbsp' ; number * ,333333334;
eq = 'ozg' ; number * 28,35;
eq = 'ozhg' ; number * ,2835;
eq = 'ozkg' ; number * ,02835;
eq = 'ozlb' ; number * ,0625;
eq = 'oztsp' ; number * 6;
eq = 'oztbsp' ; number * 2;
eq = 'kgg' ; number * 1000;
eq = 'kghg' ; number * 10;
eq = 'kgoz' ; number * 35,27336;
eq = 'kglb' ; number * 2,202643171806168;
eq = 'kgtsp' ; number * 211,64021164021;
eq = 'kgtbsp' ; number * 70,546737213404;
eq = 'hgg' ; number * 100;
eq = 'hgkg' ; number * ,1;
eq = 'hgoz' ; number * 3,52733686067;
eq = 'hglb' ; number * ,2202643171806168;
eq = 'hgtsp' ; number * 200;
eq = 'hgtbsp' ; number * 66,6666667;
eq = 'gkg' or eq = 'mll' ; number * ,001;
eq = 'goz' ; number * ,0352;
eq = 'glb' ; number * ,002202643171806168;
eq = 'gtsp' ; number * ,21164021164;
eq = 'gtbsp' ; number * ,070546737213;
eq = 'gall' ; number * 3,785412;
eq = 'galdl' ; number * 37,85412;
eq = 'galcl' ; number * 378,5412;
eq = 'galml' ; number * 3785,412;
eq = 'galcup' ; number * 16;
eq = 'galpint' ; number * 8;
eq = 'galfloz' ; number * 128;
eq = 'galtsp' ; number * 768;
eq = 'galtbsp' ; number * 256;
eq = 'tbspl' ; number * ,01478676;
eq = 'tbspdl' ; number * ,1478676;
eq = 'tbspcl' ; number * 1,478676;
eq = 'tbspml' ; number * 14,78676;
eq = 'tbspcup' ; number * ,0625;
eq = 'tbsppint' ; number * ,03125;
eq = 'tbspfloz' ; number * ,5;
eq = 'tbsptsp' ; number * 3;
eq = 'tbspgal' ; number * ,00390625;
eq = 'tspl' ; number * ,004928922;
eq = 'tspdl' ; number * ,04928922;
eq = 'tspcl' ; number * ,4928922;
eq = 'tspml' ; number * 4,928922;
eq = 'tspcup' ; number * ,020833333333;
eq = 'tsppint' ; number * ,010416666667;
eq = 'tspfloz' ; number * ,166666666667;
eq = 'tsptbsp' ; number * ,333333333333;
eq = 'tspgal' ; number * ,001302083366;
eq = 'flozl' ; number * ,02957353;
eq = 'flozdl' ; number * ,2957353;
eq = 'flozcl' ; number * 2,957353;
eq = 'flozml' ; number * 29,57353;
eq = 'flozcup' ; number * ,125;
eq = 'flozpint' ; number * ,0625;
eq = 'floztsp' ; number * 6;
eq = 'floztbsp' ; number * 2;
eq = 'flozgal' ; number * ,0078125;
eq = 'pintl' ; number * ,473;
eq = 'pintdl' ; number * 4,73;
eq = 'pintcl' ; number * 47,3;
eq = 'pintml' ; number * 473;
eq = 'pintcup' ; number * 2;
eq = 'pintfloz' ; number * 16;
eq = 'pinttsp' ; number * 96;
eq = 'pinttbsp' ; number * 32;
eq = 'pintgal' ; number * ,125;
eq = 'cupl' ; number * ,2365882;
eq = 'cupdl' ; number * 2,365882;
eq = 'cupcl' ; number * 23,65882;
eq = 'cupml' ; number * 236,5882;
eq = 'cuppint' ; number * ,5;
eq = 'cupfloz' ; number * 8;
eq = 'cuptsp' ; number * 48;
eq = 'cuptbsp' ; number * 16;
eq = 'cupgal' ; number * ,0625;
eq = 'mldl' or eq = 'cll' or eq = 'ghg' ; number * ,01;
eq = 'mlcl' or eq = 'cldl' or eq = 'dll' ; number * ,1;
eq = 'mlcup' ; number * ,004237288136;
eq = 'mlpint' ; number * ,002114164904862579;
eq = 'mlfloz' ; number * ,033814022202;
eq = 'mltsp' ; number * ,202884119489;
eq = 'mltbsp' ; number * ,067628067271;
eq = 'mlgal' ; number * ,000264172037;
eq = 'clcup' ; number * ,042267534898;
eq = 'clpint' ; number * ,021141649049;
eq = 'clfloz' ; number * ,338140222016;
eq = 'cltsp' ; number * 2,02884119489;
eq = 'cltbsp' ; number * ,67628067271;
eq = 'clgal' ; number * ,002641720373;
eq = 'dlcl' or eq = 'clml' ; number * 10;
eq = 'dlml' ; number * 100;
eq = 'dlcup' ; number * ,4237288136;
eq = 'dlpint' ; number * ,2114164904863;
eq = 'dlfloz' ; number * 3,381402220161;
eq = 'dltsp' ; number * 20,2884119489;
eq = 'dltbsp' ; number * 6,7628067271;
eq = 'dlgal' ; number * ,0264172037284
)
)
)
)