entero dato convertir string numbers postscript

dato - convertir int a string java



Postscript: cómo convertir un entero en una cadena? (2)

Pruebe 3.14159 20 string cvs show .

string necesita un tamaño y deja la cadena creada en la pila. cvs necesita un valor y una cadena para almacenar el valor convertido.

Si realiza muchas conversiones de cadenas, puede ser más eficaz crear una cadena y volver a utilizarla en cada conversión:

/s 20 string def 3.14159 s cvs show

En postscript, se dice que el operador cvs * convierte un número en una cadena. ¿Cómo debería usarlo? Lo intenté :

100 100 moveto 3.14159 cvs show

o

100 100 moveto 3.14159 cvs string show

pero no funcionó.

Alguna ayuda ?


Una expresión común es usar una cadena literal como plantilla.

1.42857 ( ) cvs show

Incluso puede hacer una salida formateada presentando cvs con varias subcadenas de una cadena más grande.

%0123456....... (2/7 = ) dup 6 7 getinterval 2.85714 exch cvs pop show

Pero la Guía de estilo de Ghostscript lo prohíbe. Y es prácticamente la única guía de estilo Postscript publicada que tenemos. ( Una discusión sobre esto en comp.lang.postscript.) Por lo tanto, una recomendación común es asignar una nueva cadena cuando la necesite y dejar que el recolector de basura se gane.

4.28571 7 string cvs show

Como último recurso, el pirata informático realmente perezoso secuestrará =string , el búfer de 128 bytes incorporado utilizado por = y == para dar salida a números (utilizando, por supuesto, nuestros cvs amigos).

5.71428 =string cvs show

Y si te gusta ese, puedes combinarlo con el otro truco: nombres evaluados inmediatamente.

{ 7.14285 //=string cvs show } % embed =string in this procedure

Esto reduce ese microsegundo extra y hace que sea mucho más difícil inspeccionar interactivamente el código. Llamar == a este procedimiento no revelará el hecho de que está usando =string ; se ve como cualquier otra cadena.

Un truco más para la bolsa, de una publicación de Helge Blischke en comp.lang.postscript . Esta es una forma simple de obtener un entero cero rellenado.

/bindec % <integer> bindec <string_of_length_6> { 1000000 add 7 string cvs 1 6 getinterval }bind def